home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 5
/
Amiga Tools 5.iso
/
grafik
/
3d & render tools
/
irit
/
man
/
man6
/
ccrvtr.6
< prev
next >
Wrap
Text File
|
1996-07-16
|
2KB
|
65 lines
.TH CCRVTR
6 "IRIT Version 6.0"
.SH NAME
CCRVTR
NumericType CCRVTR( CurveType Crv, NumericType Epsilon )
or
CurveType CCRVTR( CurveType Crv, NumericType Epsilon )
Computes the extreme curvature points on Crv in the XY plane.
This set includes not only points of maximum (convexity) and mimumum
(concavity) curvature, but also points of zero curvature such as
inflection points.
Since this operation is partially numeric, Epsilon is used to set
the needed accuracy. It returns the parameter value(s) of the location(s)
with extreme curvature along the Crv.
If, however, Epsilon is negative, the curvature scalar field
curve is returned as a two dimensional rational vector field curve, for
which the first dimension is equal to the parameter, and the second is the
curvature value at that parameter.
This function computes the curvature scalar field for planar curves as,
x' y'' - x'' y'
k(t) = ----------------
2 2 3/2
( x' + y' )
and computes kN for three dimensional curves as the following vector field,
C' x C'' C' (C' x C'') x C'
k(t) N(t) = K(t) B(t) x T(t) = -------- x ----- = ---------------
3 | C' | 4
| C'| | C' |
The extremum values are extracted from the computed curvature field.
This curvature field is a high order curve, even if the input geometry is
of low order. This is especially true for rational curves, for which the
quotient rule for differentiation is used and almost doubles the degree
in every differentiation.
See also CZEROS, CEXTREMES, and SCRVTR.
Example:
crv = cbezier( list( ctlpt( E2, -1.0, 0.5 ),
ctlpt( E2, -0.5, -2.0 ),
ctlpt( E2, 0.0, 1.0 ),
ctlpt( E2, 1.0, 0.0 ) ) ) * rotz( 30 );
crvtr = CCRVTR( crv, 0.001 );
pt_crvtr = nil();
pt = nil();
for ( i = 1, 1, sizeof( crvtr ),
( pt = ceval( crv, nth( crvtr, i ) ) ):
snoc( pt, pt_crvtr )
);
interact( list( crv, pt_crvtr ) );
finds the extreme curvature points in Crv and displays them all
with the curve.